<?php

namespace App\Models;

use DateTimeInterface;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;

/**
 * 案卷构成组合
 * App\Models\DossierCombination
 */
class DossierCombination extends Model
{
    use SoftDeletes;

    protected $hidden = [];

    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    /**
     * 关联关系 1:N 查询案卷构成规范的 封面
     * @return BelongsTo
     */
    function cover(): BelongsTo
    {
        return $this->belongsTo(DossierTemplate::class, 'cover_id', 'id')->select(['id', 'title', 'type', 'thumb']);
    }

    /**
     * 关联关系 1:N 查询案卷构成规范的 备考表
     * @return BelongsTo
     */
    function appendix(): BelongsTo
    {
        return $this->belongsTo(DossierTemplate::class, 'appendix_id', 'id')->select(['id', 'title', 'type', 'thumb']);
    }

    /**
     * 关联关系 1:N 查询案卷构成规范的 案卷目录
     * @return BelongsTo
     */
    function bookTitle(): BelongsTo
    {
        return $this->belongsTo(DossierTemplate::class, 'book_title_id', 'id')->select(['id', 'title', 'type', 'thumb']);
    }

    /**
     * 关联关系 1:N 查询案卷构成规范的 卷内目录
     * @return BelongsTo
     */
    function bookCatalog(): BelongsTo
    {
        return $this->belongsTo(DossierTemplate::class, 'book_catalog_id', 'id')->select(['id', 'title', 'type', 'thumb']);
    }

    /**
     * 关联关系 1:N 查询案卷构成规范的 全引目录
     * @return BelongsTo
     */
    function catalogue()
    {
        return $this->belongsTo(DossierTemplate::class, 'catalogue_id', 'id')->select(['id', 'title', 'type', 'thumb']);
    }

}
